home *** CD-ROM | disk | FTP | other *** search
/ Languguage OS 2 / Languguage OS II Version 10-94 (Knowledge Media)(1994).ISO / gnu / bash_114.zip / bash-1.14.2 / documentation / readline.txt < prev    next >
Text File  |  1994-08-04  |  41KB  |  1,123 lines

  1.  
  2.  
  3.  
  4. READLINE(3)            C LIBRARY FUNCTIONS            READLINE(3)
  5.  
  6.  
  7.  
  8. NAME
  9.      readline - get a line from a user with editing
  10.  
  11. SYNOPSIS
  12.      #include <readline.h>
  13.      #include <history.h>
  14.  
  15.      typedef int Function ();
  16.  
  17.      char *readline (prompt)
  18.      char *prompt;
  19.  
  20.      int rl_add_defun (name, function, key)
  21.      char *name;
  22.      Function *function;
  23.      int key;
  24.  
  25.      int rl_bind_key (key, function)
  26.      int key;
  27.      Function *function;
  28.  
  29.      int rl_unbind_key (key)
  30.      int key;
  31.  
  32.      int rl_bind_key_in_map (key, function, keymap)
  33.      int key;
  34.      Function *function;
  35.      Keymap keymap;
  36.  
  37.      int rl_unbind_key_in_map (key, keymap)
  38.      int key;
  39.      Keymap keymap;
  40.  
  41.      int rl_macro_bind (keyseq, macro, keymap)
  42.      char *keyseq, *macro;
  43.      Keymap keymap;
  44.  
  45.      int rl_variable_bind (variable, value)
  46.      char *variable, *value;
  47.  
  48.      int rl_parse_and_bind (line)
  49.      char *line;
  50.  
  51.      int rl_translate_keyseq (keyseq, array, len)
  52.      char *keyseq, *array;
  53.      int *len;
  54.  
  55.      Function *rl_named_function (command)
  56.      char *command;
  57.  
  58.      Function *rl_function_of_keyseq (keyseq, keymap, type)
  59.      char *keyseq;
  60.  
  61.  
  62.  
  63. GNU                 Last change: 1994 July 26                   1
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70. READLINE(3)            C LIBRARY FUNCTIONS            READLINE(3)
  71.  
  72.  
  73.  
  74.      Keymap keymap;
  75.      int *type;
  76.  
  77.      char **rl_invoking_keyseqs (function)
  78.      Function *function;
  79.  
  80.      char **rl_invoking_keyseqs_in_map (function, keymap)
  81.      Function *function;
  82.      Keymap keymap;
  83.  
  84.      void rl_function_dumper (readable)
  85.      int readable;
  86.  
  87.      char **rl_funmap_names ()
  88.  
  89. COPYRIGHT
  90.      Readline is Copyright (C) 1989, 1991 by  the  Free  Software
  91.      Foundation, Inc.
  92.  
  93. DESCRIPTION
  94.      readline will read a line from the terminal and  return  it,
  95.      using  prompt  as a prompt.  If prompt is null, no prompt is
  96.      issued.  The line returned is allocated with  _m_a_l_l_o_c(3),  so
  97.      the  caller  must  free it when finished.  The line returned
  98.      has the final newline removed, so only the text of the  line
  99.      remains.
  100.  
  101.      readline offers  editing  capabilities  while  the  user  is
  102.      entering  the  line.   By default, the line editing commands
  103.      are similar to those of  emacs.   A  vi-style  line  editing
  104.      interface is also available.
  105.  
  106.      In  the  following  descriptions,  keymap  can  be  one   of
  107.      _e_m_a_c_s__k_e_y_m_a_p,      _e_m_a_c_s__m_e_t_a__k_e_y_m_a_p,     _e_m_a_c_s__c_t_l_x__k_e_y_m_a_p,
  108.      _v_i__i_n_s_e_r_t_i_o_n__k_e_y_m_a_p, _o_r _v_i__m_o_v_e_m_e_n_t__k_e_y_m_a_p.
  109.  
  110.      rl_add_defun makes name appear as a bindable  readline  com-
  111.      mand,  and  makes  function be the function called when that
  112.      command is invoked.  If key is not -1, it is bound to  func-
  113.      tion in the current keymap.
  114.  
  115.      rl_bind_key causes key to invoke function.  The  binding  is
  116.      made in the current keymap.
  117.  
  118.      rl_unbind_key removes the binding for  key  in  the  current
  119.      keymap.
  120.  
  121.      rl_bind_key_in_map makes the  key  entry  in  keymap  invoke
  122.      function.
  123.  
  124.      rl_unbind_key_in_map removes the binding for key  in  keymap
  125.      keymap.
  126.  
  127.  
  128.  
  129. GNU                 Last change: 1994 July 26                   2
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136. READLINE(3)            C LIBRARY FUNCTIONS            READLINE(3)
  137.  
  138.  
  139.  
  140.      rl_macro_bind makes keyseq insert  the  string  macro.   The
  141.      binding is performed in keymap.
  142.  
  143.      rl_variable_bind sets the value  of  the  readline  variable
  144.      variable to value.
  145.  
  146.      rl_parse_and_bind takes as an argument a line  of  the  same
  147.      form  as  the readline startup file (see INITIALIZATION FILE
  148.      below) and executes the commands therein.
  149.  
  150.      rl_translate_keyseq converts keyseq into a new string, stor-
  151.      ing  the  result in array.  This translates control and meta
  152.      prefixes and the readline character  escape  sequences  (see
  153.      Key  Bindings below).  The length of the translated sequence
  154.      is returned in *len.
  155.  
  156.      rl_named_function returns the function that is executed when
  157.      the readline command command is invoked.
  158.  
  159.      rl_function_of_keyseq returns the function that is  executed
  160.      when  keyseq is read and keymap is the current keymap.  type
  161.      is set to indicate whether the return value corresponds to a
  162.      function, macro, or auxiliary keymap.
  163.  
  164.      rl_invoking_keyseqs returns all of the key sequences in  the
  165.      current keymap that invoke function.
  166.  
  167.      rl_invoking_keyseqs_in_map returns all of the key  sequences
  168.      in keymap that invoke function.
  169.  
  170.      rl_function_dumper prints all of the readline functions  and
  171.      their  bindings  to the readline output stream.  If readable
  172.      is non-zero, the output is formattted so that it can be read
  173.      back in to restore the bindings.
  174.  
  175.      rl_funmap_names returns an array of all known readline bind-
  176.      able function names.  The array is sorted.
  177.  
  178. RETURN VALUE
  179.      readline returns the text of the line read.   A  blank  line
  180.      returns the empty string.  If EOF is encountered while read-
  181.      ing a line, and the line is empty, NULL is returned.  If  an
  182.      EOF  is  read with a non-empty line, it is treated as a new-
  183.      line.
  184.  
  185.      Unless otherwise stated, the other  functions  return  0  on
  186.      success and non-zero on failure.
  187.  
  188. NOTATION
  189.      An emacs-style notation is used to denote keystrokes.   Con-
  190.      trol  keys  are denoted by C-_k_e_y, e.g., C-n means Control-N.
  191.      Similarly, _m_e_t_a keys are denoted  by  M-_k_e_y,  so  M-x  means
  192.  
  193.  
  194.  
  195. GNU                 Last change: 1994 July 26                   3
  196.  
  197.  
  198.  
  199.  
  200.  
  201.  
  202. READLINE(3)            C LIBRARY FUNCTIONS            READLINE(3)
  203.  
  204.  
  205.  
  206.      Meta-X.   (On keyboards without a _m_e_t_a key, M-_x means ESC _x,
  207.      i.e., press the Escape key then the _x key.  This  makes  ESC
  208.      the _m_e_t_a _p_r_e_f_i_x.  The combination M-C-_x means ESC-Control-_x,
  209.      or press the Escape key then  hold  the  Control  key  while
  210.      pressing the _x key.)
  211.  
  212.      Readline commands may be given numeric _a_r_g_u_m_e_n_t_s, which nor-
  213.      mally  act as a repeat count.  Sometimes, however, it is the
  214.      sign of the argument that is significant.  Passing  a  nega-
  215.      tive  argument  to a command that acts in the forward direc-
  216.      tion (e.g., kill-line) causes that command to act in a back-
  217.      ward  direction.   Commands  whose  behavior  with arguments
  218.      deviates from this are noted.
  219.  
  220.      When a command  is  described  as  _k_i_l_l_i_n_g  text,  the  text
  221.      deleted  is  saved  for possible future retrieval (_y_a_n_k_i_n_g).
  222.      The killed text is saved in a _k_i_l_l-_r_i_n_g.  Consecutive  kills
  223.      cause the text to be accumulated into one unit, which can be
  224.      yanked all at once. Commands which do not kill text separate
  225.      the chunks of text on the kill-ring.
  226.  
  227. INITIALIZATION FILE
  228.      Readline is customized by putting commands in an initializa-
  229.      tion file.  The name of this file is taken from the value of
  230.      the INPUTRC  variable.   If  that  variable  is  unset,  the
  231.      default  is ~/._i_n_p_u_t_r_c.  When a program which uses the read-
  232.      line library starts up, the init file is read, and  the  key
  233.      bindings  and variables are set.  There are only a few basic
  234.      constructs allowed in the readline init file.   Blank  lines
  235.      are  ignored.  Lines beginning with a # are comments.  Lines
  236.      beginning with a $ indicate conditional  constructs.   Other
  237.      lines  denote key bindings and variable settings.  Each pro-
  238.      gram using this library may add its own commands  and  bind-
  239.      ings.
  240.  
  241.      For example, placing
  242.  
  243.           M-Control-u: universal-argument
  244.      or
  245.           C-Meta-u: universal-argument
  246.      into the ~/._i_n_p_u_t_r_c would make M-C-u  execute  the  readline
  247.      command _u_n_i_v_e_r_s_a_l-_a_r_g_u_m_e_n_t.
  248.  
  249.      The following symbolic character names are recognized  while
  250.      processing  key  bindings:  _R_U_B_O_U_T,  _D_E_L, _E_S_C, _L_F_D, _N_E_W_L_I_N_E,
  251.      _R_E_T, _R_E_T_U_R_N, _S_P_C, _S_P_A_C_E, and _T_A_B.  In  addition  to  command
  252.      names,  readline allows keys to be bound to a string that is
  253.      inserted when the key is pressed (a _m_a_c_r_o).
  254.  
  255.   Key Bindings
  256.      The syntax for controlling key bindings  in  the  ~/._i_n_p_u_t_r_c
  257.      file  is  simple.   All  that is required is the name of the
  258.  
  259.  
  260.  
  261. GNU                 Last change: 1994 July 26                   4
  262.  
  263.  
  264.  
  265.  
  266.  
  267.  
  268. READLINE(3)            C LIBRARY FUNCTIONS            READLINE(3)
  269.  
  270.  
  271.  
  272.      command or the text of a macro and a key sequence  to  which
  273.      it  should be bound. The name may be specified in one of two
  274.      ways: as a symbolic key name, possibly with  _M_e_t_a-  or  _C_o_n_-
  275.      _t_r_o_l-  prefixes,  or as a key sequence.  When using the form
  276.      keyname:_f_u_n_c_t_i_o_n-_n_a_m_e or _m_a_c_r_o, _k_e_y_n_a_m_e is the name of a key
  277.      spelled out in English.  For example:
  278.  
  279.           Control-u: universal-argument
  280.           Meta-Rubout: backward-kill-word
  281.           Control-o: ">&output"
  282.  
  283.      In  the  above  example,  _C-_u  is  bound  to  the   function
  284.      universal-argument,   _M-_D_E_L   is   bound   to  the  function
  285.      backward-kill-word, and  _C-_o  is  bound  to  run  the  macro
  286.      expressed  on  the  right  hand side (that is, to insert the
  287.      text >&_o_u_t_p_u_t into the line).
  288.  
  289.      In the second form, "keyseq":_f_u_n_c_t_i_o_n-_n_a_m_e or _m_a_c_r_o,  keyseq
  290.      differs  from  keyname  above  in  that  strings denoting an
  291.      entire key sequence may be specified by placing the sequence
  292.      within  double quotes.  Some GNU Emacs style key escapes can
  293.      be used, as in the following example.
  294.  
  295.           "\C-u": universal-argument
  296.           "\C-x\C-r": re-read-init-file
  297.           "\e[11~": "Function Key 1"
  298.  
  299.      In  this  example,  _C-_u  is  again  bound  to  the  function
  300.      universal-argument.   _C-_x  _C-_r  is  bound  to  the  function
  301.      re-read-init-file, and _E_S_C [ _1 _1 ~ is bound  to  insert  the
  302.      text Function Key 1.  The full set of escape sequences is
  303.  
  304.           \C-  control prefix
  305.  
  306.           \M-  meta prefix
  307.  
  308.           \e   an escape character
  309.  
  310.           \\   backslash
  311.  
  312.           " \" literal "
  313.  
  314.           \'   literal '
  315.  
  316.      When entering the text of a macro, single or  double  quotes
  317.      should  be  used  to  indicate a macro definition.  Unquoted
  318.      text is assumed to be a function name.  Backslash will quote
  319.      any character in the macro text, including " and '.
  320.  
  321.      Bash  allows  the  current  readline  key  bindings  to   be
  322.      displayed  or  modified  with the bind builtin command.  The
  323.      editing mode may be switched during interactive use by using
  324.  
  325.  
  326.  
  327. GNU                 Last change: 1994 July 26                   5
  328.  
  329.  
  330.  
  331.  
  332.  
  333.  
  334. READLINE(3)            C LIBRARY FUNCTIONS            READLINE(3)
  335.  
  336.  
  337.  
  338.      the  -o  option  to the set builtin command.  Other programs
  339.      using this library provide similar mechanisms.  The  _i_n_p_u_t_r_c
  340.      file may be edited and re-read if a program does not provide
  341.      any other means to incorporate new bindings.
  342.  
  343.   Variables
  344.      Readline has variables that can be used to further customize
  345.      its  behavior.   A  variable  may be set in the _i_n_p_u_t_r_c file
  346.      with a statement of the form
  347.  
  348.           set _v_a_r_i_a_b_l_e-_n_a_m_e _v_a_l_u_e
  349.  
  350.      Except where noted, readline variables can take  the  values
  351.      On or Off.  The variables and their default values are:
  352.  
  353.      horizontal-scroll-mode (Off)
  354.           When set to On, makes readline use a  single  line  for
  355.           display,  scrolling  the input horizontally on a single
  356.           screen line when it  becomes  longer  than  the  screen
  357.           width rather than wrapping to a new line.
  358.      editing-mode (emacs)
  359.           Controls whether readline begins  with  a  set  of  key
  360.           bindings  similar  to _e_m_a_c_s or _v_i.  editing-mode can be
  361.           set to either emacs or vi.
  362.      mark-modified-lines (Off)
  363.           If set to On, history lines that have been modified are
  364.           displayed with a preceding asterisk (*).
  365.      bell-style (audible)
  366.           Controls what happens when readline wants to  ring  the
  367.           terminal  bell.   If  set to none, readline never rings
  368.           the bell.  If set to visible, readline uses  a  visible
  369.           bell  if one is available.  If set to audible, readline
  370.           attempts to ring the terminal's bell.
  371.      comment-begin (``#'')
  372.           The string  that  is  inserted  in  vi  mode  when  the
  373.           vi-comment command is executed.
  374.      meta-flag (Off)
  375.           If set to On,  readline  will  enable  eight-bit  input
  376.           (that is, it will not strip the high bit from the char-
  377.           acters it  reads),  regardless  of  what  the  terminal
  378.           claims it can support.
  379.      convert-meta (On)
  380.           If set to On, readline will convert characters with the
  381.           eighth  bit  set  to an ASCII key sequence by stripping
  382.           the eighth bit and prepending an escape  character  (in
  383.           effect, using escape as the _m_e_t_a _p_r_e_f_i_x).
  384.      output-meta (Off)
  385.           If set to On, readline will display characters with the
  386.           eighth  bit set directly rather than as a meta-prefixed
  387.           escape sequence.
  388.      completion-query-items (100)
  389.           This determines when the user is queried about  viewing
  390.  
  391.  
  392.  
  393. GNU                 Last change: 1994 July 26                   6
  394.  
  395.  
  396.  
  397.  
  398.  
  399.  
  400. READLINE(3)            C LIBRARY FUNCTIONS            READLINE(3)
  401.  
  402.  
  403.  
  404.           the  number  of  possible  completions generated by the
  405.           possible-completions command.  It may  be  set  to  any
  406.           integer  value  greater  than or equal to zero.  If the
  407.           number of possible completions is greater than or equal
  408.           to  the  value  of  this  variable,  the  user is asked
  409.           whether or not he wishes to view them;  otherwise  they
  410.           are simply listed on the terminal.
  411.      keymap (emacs)
  412.           Set the current readline keymap.  The set of legal key-
  413.           map  names is _e_m_a_c_s, _e_m_a_c_s-_s_t_a_n_d_a_r_d, _e_m_a_c_s-_m_e_t_a, _e_m_a_c_s-
  414.           _c_t_l_x, _v_i, _v_i-_m_o_v_e, _v_i-_c_o_m_m_a_n_d, and  _v_i-_i_n_s_e_r_t.   _v_i  is
  415.           equivalent   to  _v_i-_c_o_m_m_a_n_d;  _e_m_a_c_s  is  equivalent  to
  416.           _e_m_a_c_s-_s_t_a_n_d_a_r_d.  The default value is _e_m_a_c_s; the  value
  417.           of editing-mode also affects the default keymap.
  418.      show-all-if-ambiguous (Off)
  419.           This alters the  default  behavior  of  the  completion
  420.           functions.   If  set  to on, words which have more than
  421.           one possible completion cause the matches to be  listed
  422.           immediately instead of ringing the bell.
  423.      expand-tilde (Off)
  424.           If set to on, tilde expansion is performed  when  read-
  425.           line attempts word completion.
  426.  
  427.   Conditional Constructs
  428.      Readline implements a facility similar in spirit to the con-
  429.      ditional  compilation  features  of the C preprocessor which
  430.      allows key bindings and variable settings to be performed as
  431.      the  result  of  tests.   There  are three parser directives
  432.      used.
  433.  
  434.      $if  The $if construct allows bindings to be made  based  on
  435.           the  editing  mode,  the  terminal  being  used, or the
  436.           application using  readline.   The  text  of  the  test
  437.           extends  to  the  end  of  the  line; no characters are
  438.           required to isolate it.
  439.  
  440.           mode The mode= form of the $if  directive  is  used  to
  441.                test  whether  readline  is  in  emacs or vi mode.
  442.                This may be used in conjunction with the set  key-
  443.                map  command, for instance, to set bindings in the
  444.                _e_m_a_c_s-_s_t_a_n_d_a_r_d  and  _e_m_a_c_s-_c_t_l_x  keymaps  only  if
  445.                readline is starting out in emacs mode.
  446.  
  447.           term The term= form may be used  to  include  terminal-
  448.                specific  key  bindings,  perhaps  to bind the key
  449.                sequences output by the terminal's function  keys.
  450.                The  word  on  the  right  side of the = is tested
  451.                against the full name of the terminal and the por-
  452.                tion  of  the  terminal  name  before the first -.
  453.                This allows _s_u_n to match both _s_u_n and _s_u_n-_c_m_d, for
  454.                instance.
  455.  
  456.  
  457.  
  458.  
  459. GNU                 Last change: 1994 July 26                   7
  460.  
  461.  
  462.  
  463.  
  464.  
  465.  
  466. READLINE(3)            C LIBRARY FUNCTIONS            READLINE(3)
  467.  
  468.  
  469.  
  470.           application
  471.                The  application  construct  is  used  to  include
  472.                application-specific settings.  Each program using
  473.                the readline library sets  the  _a_p_p_l_i_c_a_t_i_o_n  _n_a_m_e,
  474.                and an initialization file can test for a particu-
  475.                lar  value.   This  could  be  used  to  bind  key
  476.                sequences  to functions useful for a specific pro-
  477.                gram.  For instance, the following command adds  a
  478.                key  sequence  that quotes the current or previous
  479.                word in Bash:
  480.                $if bash
  481.                # Quote the current or previous word
  482.                "\C-xq": "\eb\"\ef\""
  483.                $endif
  484.  
  485.      $endif
  486.           This command, as you saw in the previous example,  ter-
  487.           minates an $if command.
  488.  
  489.      $else
  490.           Commands in this branch of the $if directive  are  exe-
  491.           cuted if the test fails.
  492.  
  493. EDITING COMMANDS
  494.      The following is a list of the names of the commands and the
  495.      default key sequences to which they are bound.
  496.  
  497.   Commands for Moving
  498.      beginning-of-line (C-a)
  499.           Move to the start of the current line.
  500.      end-of-line (C-e)
  501.           Move to the end of the line.
  502.      forward-char (C-f)
  503.           Move forward a character.
  504.      backward-char (C-b)
  505.           Move back a character.
  506.      forward-word (M-f)
  507.           Move forward to the end of the next  word.   Words  are
  508.           composed   of   alphanumeric  characters  (letters  and
  509.           digits).
  510.      backward-word (M-b)
  511.           Move back to the start of this, or the previous,  word.
  512.           Words  are composed of alphanumeric characters (letters
  513.           and digits).
  514.      clear-screen (C-l)
  515.           Clear the screen leaving the current line at the top of
  516.           the screen.  With an argument, refresh the current line
  517.           without clearing the screen.
  518.      redraw-current-line
  519.           Refresh the current line.  By default, this is unbound.
  520.  
  521.  
  522.  
  523.  
  524.  
  525. GNU                 Last change: 1994 July 26                   8
  526.  
  527.  
  528.  
  529.  
  530.  
  531.  
  532. READLINE(3)            C LIBRARY FUNCTIONS            READLINE(3)
  533.  
  534.  
  535.  
  536.   Commands for Manipulating the History
  537.      accept-line (Newline, Return)
  538.           Accept the line regardless of where the cursor is.   If
  539.           this  line is non-empty, add it to the history list. If
  540.           the line is a modified history line, then  restore  the
  541.           history line to its original state.
  542.      previous-history (C-p)
  543.           Fetch the previous command from the history list,  mov-
  544.           ing back in the list.
  545.      next-history (C-n)
  546.           Fetch the next command from the  history  list,  moving
  547.           forward in the list.
  548.      beginning-of-history (M-<)
  549.           Move to the first line in the history.
  550.      end-of-history (M->)
  551.           Move to the end of the input history,  i.e.,  the  line
  552.           currently being entered.
  553.      reverse-search-history (C-r)
  554.           Search backward starting at the current line and moving
  555.           `up'  through  the  history  as  necessary.  This is an
  556.           incremental search.
  557.      forward-search-history (C-s)
  558.           Search forward starting at the current line and  moving
  559.           `down'  through  the  history as necessary.  This is an
  560.           incremental search.
  561.      non-incremental-reverse-search-history (M-p)
  562.           Search backward through the  history  starting  at  the
  563.           current  line  using  a  non-incremental  search  for a
  564.           string supplied by the user.
  565.      non-incremental-forward-search-history (M-n)
  566.           Search   forward   through   the   history   using    a
  567.           non-incremental  search  for  a  string supplied by the
  568.           user.
  569.      history-search-forward
  570.           Search forward through the history for  the  string  of
  571.           characters  between  the  start of the current line and
  572.           the current point.  This is a  non-incremental  search.
  573.           By default, this command is unbound.
  574.      history-search-backward
  575.           Search backward through the history for the  string  of
  576.           characters  between  the  start of the current line and
  577.           the current point.  This is a  non-incremental  search.
  578.           By default, this command is unbound.
  579.      yank-nth-arg (M-C-y)
  580.           Insert the first argument to the previous command (usu-
  581.           ally  the  second  word  on the previous line) at point
  582.           (the current cursor position).   With  an  argument  _n,
  583.           insert  the  _nth  word  from  the previous command (the
  584.           words in the previous command begin with  word  0).   A
  585.           negative  argument inserts the _nth word from the end of
  586.           the previous command.
  587.      yank-last-arg (M-., M-_)
  588.  
  589.  
  590.  
  591. GNU                 Last change: 1994 July 26                   9
  592.  
  593.  
  594.  
  595.  
  596.  
  597.  
  598. READLINE(3)            C LIBRARY FUNCTIONS            READLINE(3)
  599.  
  600.  
  601.  
  602.           Insert the last argument to the previous  command  (the
  603.           last  word  on  the  previous line).  With an argument,
  604.           behave exactly like @code{yank-nth-arg}.
  605.  
  606.   Commands for Changing Text
  607.      delete-char (C-d)
  608.           Delete the character under the cursor.  If point is  at
  609.           the  beginning  of the line, there are no characters in
  610.           the line, and the last character  typed  was  not  C-d,
  611.           then return EOF.
  612.      backward-delete-char (Rubout)
  613.           Delete the character behind the cursor.  When  given  a
  614.           numeric   argument,   save  the  deleted  text  on  the
  615.           kill-ring.
  616.      quoted-insert (C-q, C-v)
  617.           Add the next character that you type to the line verba-
  618.           tim.   This  is  how to insert characters like C-q, for
  619.           example.
  620.      tab-insert (M-TAB)
  621.           Insert a tab character.
  622.      self-insert (a, b, A, 1, !, ...)
  623.           Insert the character typed.
  624.      transpose-chars (C-t)
  625.           Drag the character before point forward over the  char-
  626.           acter at point.  Point moves forward as well.  If point
  627.           is at the end of the line, then transpose the two char-
  628.           acters before point.  Negative arguments don't work.
  629.      transpose-words (M-t)
  630.           Drag the word behind the cursor past the word in  front
  631.           of the cursor moving the cursor over that word as well.
  632.      upcase-word (M-u)
  633.           Uppercase the current  (or  following)  word.   With  a
  634.           negative  argument,  do  the  previous word, but do not
  635.           move point.
  636.      downcase-word (M-l)
  637.           Lowercase the current  (or  following)  word.   With  a
  638.           negative  argument,  do  the  previous word, but do not
  639.           move point.
  640.      capitalize-word (M-c)
  641.           Capitalize the current (or  following)  word.   With  a
  642.           negative  argument,  do  the  previous word, but do not
  643.           move point.
  644.  
  645.   Killing and Yanking
  646.      kill-line (C-k)
  647.           Kill the text from the current cursor position  to  the
  648.           end of the line.
  649.      backward-kill-line (C-x Rubout)
  650.           Kill backward to the beginning of the line.
  651.      unix-line-discard (C-u)
  652.           Kill backward from point to the beginning of the line.
  653.      kill-whole-line
  654.  
  655.  
  656.  
  657. GNU                 Last change: 1994 July 26                  10
  658.  
  659.  
  660.  
  661.  
  662.  
  663.  
  664. READLINE(3)            C LIBRARY FUNCTIONS            READLINE(3)
  665.  
  666.  
  667.  
  668.           Kill all characters on  the  current  line,  no  matter
  669.           where the cursor is.  By default, this is unbound.
  670.      kill-word (M-d)
  671.           Kill from the cursor to the end of the current word, or
  672.           if  between  words,  to the end of the next word.  Word
  673.           boundaries are the same as those used by forward-word.
  674.      backward-kill-word (M-Rubout)
  675.           Kill the word behind the cursor.  Word  boundaries  are
  676.           the same as those used by backward-word.
  677.      unix-word-rubout (C-w)
  678.           Kill the word behind the cursor, using white space as a
  679.           word  boundary.  The word boundaries are different from
  680.           backward-kill-word.
  681.      delete-horizontal-space
  682.           Delete all spaces and tabs around point.   By  default,
  683.           this is unbound.
  684.      yank (C-y)
  685.           Yank the top of the kill ring into the  buffer  at  the
  686.           cursor.
  687.      yank-pop (M-y)
  688.           Rotate the kill-ring, and yank the new top.  Only works
  689.           following yank or yank-pop.
  690.  
  691.   Numeric Arguments
  692.      digit-argument (M-0, M-1, ..., M--)
  693.           Add this digit to the argument already accumulating, or
  694.           start a new argument.  M-- starts a negative argument.
  695.      universal-argument
  696.           Each time this is executed, the argument count is  mul-
  697.           tiplied  by four.  The argument count is initially one,
  698.           so executing this function the  first  time  makes  the
  699.           argument  count four.  By default, this is not bound to
  700.           a key.
  701.  
  702.   Completing
  703.      complete (TAB)
  704.           Attempt to perform completion on the text before point.
  705.           The   actual   completion   performed  is  application-
  706.           specific.   Bash,  for  instance,  attempts  completion
  707.           treating  the  text  as  a variable (if the text begins
  708.           with $), username (if the text begins with ~), hostname
  709.           (if  the  text  begins  with  @), or command (including
  710.           aliases and functions) in turn.  If none of these  pro-
  711.           duces  a match, filename completion is attempted.  Gdb,
  712.           on the other hand, allows completion of  program  func-
  713.           tions and variables, and only attempts filename comple-
  714.           tion under certain circumstances.
  715.      possible-completions (M-?)
  716.           List the possible completions of the text before point.
  717.      insert-completions
  718.           Insert all completions of the text  before  point  that
  719.           would  have been generated by possible-completions.  By
  720.  
  721.  
  722.  
  723. GNU                 Last change: 1994 July 26                  11
  724.  
  725.  
  726.  
  727.  
  728.  
  729.  
  730. READLINE(3)            C LIBRARY FUNCTIONS            READLINE(3)
  731.  
  732.  
  733.  
  734.           default, this is not bound to a key.
  735.  
  736.   Keyboard Macros
  737.      start-kbd-macro (C-x ()
  738.           Begin saving the characters typed into the current key-
  739.           board macro.
  740.      end-kbd-macro (C-x ))
  741.           Stop saving the characters typed into the current  key-
  742.           board macro and save the definition.
  743.      call-last-kbd-macro (C-x e)
  744.           Re-execute the last keyboard macro defined,  by  making
  745.           the  characters  in the macro appear as if typed at the
  746.           keyboard.
  747.  
  748.   Miscellaneous
  749.      re-read-init-file (C-x C-r)
  750.           Read in the contents of your init file, and incorporate
  751.           any bindings or variable assignments found there.
  752.      abort (C-g)
  753.           Abort  the  current  editing  command  and   ring   the
  754.           terminal's bell (subject to the setting of bell-style).
  755.      do-uppercase-version (M-a, M-b, ...)
  756.           Run the command that  is  bound  to  the  corresponding
  757.           uppercase character.
  758.      prefix-meta (ESC)
  759.           Metafy the next character typed.  ESC f  is  equivalent
  760.           to Meta-f.
  761.      undo (C-_, C-x C-u)
  762.           Incremental undo, separately remembered for each line.
  763.      revert-line (M-r)
  764.           Undo all changes made to this line.  This is like  typ-
  765.           ing the undo command enough times to return the line to
  766.           its initial state.
  767.      tilde-expand (M-~)
  768.           Perform tilde expansion on the current word.
  769.      dump-functions
  770.           Print all of the functions and their  key  bindings  to
  771.           the  readline  output stream.  If a numeric argument is
  772.           supplied, the output is formatted in such a way that it
  773.           can be made part of an _i_n_p_u_t_r_c file.
  774.      emacs-editing-mode (C-e)
  775.           When in vi editing mode, this causes a switch to  emacs
  776.           editing mode.
  777.      vi-editing-mode (M-C-j)
  778.           When in emacs editing mode, this causes a switch to  vi
  779.           editing mode.
  780.  
  781. DEFAULT KEY BINDINGS
  782.      The following is a list of the default emacs  and  vi  bind-
  783.      ings.   Characters  with  the  8th bit set are written as M-
  784.      <character>, and are referred  to  as  _m_e_t_a_f_i_e_d  characters.
  785.      The  printable ASCII characters not mentioned in the list of
  786.  
  787.  
  788.  
  789. GNU                 Last change: 1994 July 26                  12
  790.  
  791.  
  792.  
  793.  
  794.  
  795.  
  796. READLINE(3)            C LIBRARY FUNCTIONS            READLINE(3)
  797.  
  798.  
  799.  
  800.      emacs standard bindings are bound to the  _s_e_l_f-_i_n_s_e_r_t  func-
  801.      tion,  which just inserts the given character into the input
  802.      line.  In vi insertion mode, all characters not specifically
  803.      mentioned  are bound to _s_e_l_f-_i_n_s_e_r_t.  Characters assigned to
  804.      signal generation by _s_t_t_y(1) or the terminal driver, such as
  805.      C-Z  or  C-C,  retain  that  function.  Upper and lower case
  806.      _m_e_t_a_f_i_e_d characters are bound to the same  function  in  the
  807.      emacs  mode  meta  keymap.   The  remaining  characters  are
  808.      unbound, which causes readline to ring the bell (subject  to
  809.      the setting of the bell-style variable).
  810.  
  811.   Emacs Mode
  812.            Emacs Standard bindings
  813.  
  814.            "C-A"                    ->  beginning-of-line
  815.            "C-B"                    ->  backward-char
  816.            "C-D"                    ->  delete-char
  817.            "C-E"                    ->  end-of-line
  818.            "C-F"                    ->  forward-char
  819.            "C-G"                    ->  abort
  820.            "C-H"                    ->  backward-delete-char
  821.            "C-I"                    ->  complete
  822.            "C-J"                    ->  accept-line
  823.            "C-K"                    ->  kill-line
  824.            "C-L"                    ->  clear-screen
  825.            "C-M"                    ->  accept-line
  826.            "C-N"                    ->  next-history
  827.            "C-P"                    ->  previous-history
  828.            "C-Q"                    ->  quoted-insert
  829.            "C-R"                    ->  reverse-search-history
  830.            "C-S"                    ->  forward-search-history
  831.            "C-T"                    ->  transpose-chars
  832.            "C-U"                    ->  unix-line-discard
  833.            "C-V"                    ->  quoted-insert
  834.            "C-W"                    ->  unix-word-rubout
  835.            "C-Y"                    ->  yank
  836.            "C-_"                    ->  undo
  837.            " " to "/"               ->  self-insert
  838.            "0"  to "9"              ->  self-insert
  839.            ":"  to "~"              ->  self-insert
  840.            "C-?"                    ->  backward-delete-char
  841.  
  842.            Emacs Meta bindings
  843.  
  844.            "M-C-H"                  ->  backward-kill-word
  845.            "M-C-I"                  ->  tab-insert
  846.            "M-C-J"                  ->  vi-editing-mode
  847.            "M-C-M"                  ->  vi-editing-mode
  848.            "M-C-R"                  ->  revert-line
  849.            "M-C-Y"                  ->  yank-nth-arg
  850.            "M-C-["                  ->  complete
  851.            "M-&"                    ->  tilde-expand
  852.  
  853.  
  854.  
  855. GNU                 Last change: 1994 July 26                  13
  856.  
  857.  
  858.  
  859.  
  860.  
  861.  
  862. READLINE(3)            C LIBRARY FUNCTIONS            READLINE(3)
  863.  
  864.  
  865.  
  866.            "M--"                    ->  digit-argument
  867.            "M-0"                    ->  digit-argument
  868.            "M-1"                    ->  digit-argument
  869.            "M-2"                    ->  digit-argument
  870.            "M-3"                    ->  digit-argument
  871.            "M-4"                    ->  digit-argument
  872.            "M-5"                    ->  digit-argument
  873.            "M-6"                    ->  digit-argument
  874.            "M-7"                    ->  digit-argument
  875.            "M-8"                    ->  digit-argument
  876.            "M-9"                    ->  digit-argument
  877.            "M-<"                    ->  beginning-of-history
  878.            "M->"                    ->  end-of-history
  879.            "M-?"                    ->  possible-completions
  880.            "M-B"                    ->  backward-word
  881.            "M-C"                    ->  capitalize-word
  882.            "M-D"                    ->  kill-word
  883.            "M-F"                    ->  forward-word
  884.            "M-L"                    ->  downcase-word
  885.            "M-N"                    ->  non-incremental-forward-search-history
  886.            "M-O"                    ->  arrow-key-prefix
  887.            "M-P"                    ->  non-incremental-reverse-search-history
  888.            "M-R"                    ->  revert-line
  889.            "M-T"                    ->  transpose-words
  890.            "M-U"                    ->  upcase-word
  891.            "M-Y"                    ->  yank-pop
  892.            "M-C-Y"                  ->  yank-nth-arg
  893.            "M-C-?"                  ->  backward-delete-word
  894.  
  895.            Emacs Control-X bindings
  896.  
  897.            "C-XC-G"                 ->  abort
  898.            "C-XC-R"                 ->  re-read-init-file
  899.            "C-XC-U"                 ->  undo
  900.            "C-X("                   ->  start-kbd-macro
  901.            "C-X)"                   ->  end-kbd-macro
  902.            "C-Xe"                   ->  call-last-kbd-macro
  903.            "C-XC-?"                 ->  backward-kill-line
  904.  
  905.  
  906.   VI Mode bindings
  907.            VI Insert Mode functions
  908.  
  909.            "C-D"                    ->  vi-eof-maybe
  910.            "C-H"                    ->  backward-delete-char
  911.            "C-I"                    ->  complete
  912.            "C-J"                    ->  accept-line
  913.            "C-K"                    ->  kill-line
  914.            "C-L"                    ->  clear-screen
  915.            "C-M"                    ->  accept-line
  916.            "C-N"                    ->  next-history
  917.            "C-P"                    ->  previous-history
  918.  
  919.  
  920.  
  921. GNU                 Last change: 1994 July 26                  14
  922.  
  923.  
  924.  
  925.  
  926.  
  927.  
  928. READLINE(3)            C LIBRARY FUNCTIONS            READLINE(3)
  929.  
  930.  
  931.  
  932.            "C-Q"                    ->  quoted-insert
  933.            "C-R"                    ->  reverse-search-history
  934.            "C-S"                    ->  forward-search-history
  935.            "C-T"                    ->  transpose-chars
  936.            "C-U"                    ->  unix-line-discard
  937.            "C-V"                    ->  quoted-insert
  938.            "C-W"                    ->  unix-word-rubout
  939.            "C-Y"                    ->  yank
  940.            "C-["                    ->  vi-movement-mode
  941.            " " to "~"               ->  self-insert
  942.            "C-?"                    ->  backward-delete-char
  943.  
  944.            VI Command Mode functions
  945.  
  946.            "C-D"                    ->  vi-eof-maybe
  947.            "C-E"                    ->  emacs-editing-mode
  948.            "C-G"                    ->  abort
  949.            "C-H"                    ->  backward-char
  950.            "C-J"                    ->  accept-line
  951.            "C-K"                    ->  kill-line
  952.            "C-L"                    ->  clear-screen
  953.            "C-M"                    ->  accept-line
  954.            "C-N"                    ->  next-history
  955.            "C-P"                    ->  previous-history
  956.            "C-Q"                    ->  quoted-insert
  957.            "C-R"                    ->  reverse-search-history
  958.            "C-S"                    ->  forward-search-history
  959.            "C-T"                    ->  transpose-chars
  960.            "C-U"                    ->  unix-line-discard
  961.            "C-V"                    ->  quoted-insert
  962.            "C-W"                    ->  unix-word-rubout
  963.            "C-Y"                    ->  yank
  964.            "C-["                    ->  abort
  965.            " "                      ->  forward-char
  966.            "#"                      ->  vi-comment
  967.            "$"                      ->  end-of-line
  968.            "%"                      ->  vi-match
  969.            "&"                      ->  vi-tilde-expand
  970.            "*"                      ->  vi-complete
  971.            "+"                      ->  down-history
  972.            ","                      ->  vi-char-search
  973.            "-"                      ->  previous-history
  974.            "."                      ->  vi-redo
  975.            "/"                      ->  vi-search
  976.            "0"                      ->  beginning-of-line
  977.            "1" to "9"               ->  vi-arg-digit
  978.            ";"                      ->  vi-char-search
  979.            "="                      ->  vi-complete
  980.            "?"                      ->  vi-search
  981.            "@"                      ->  is undefined
  982.            "A"                      ->  vi-append-eol
  983.            "B"                      ->  vi-prev-word
  984.  
  985.  
  986.  
  987. GNU                 Last change: 1994 July 26                  15
  988.  
  989.  
  990.  
  991.  
  992.  
  993.  
  994. READLINE(3)            C LIBRARY FUNCTIONS            READLINE(3)
  995.  
  996.  
  997.  
  998.            "C"                      ->  vi-change-to
  999.            "D"                      ->  vi-delete-to
  1000.            "E"                      ->  vi-end-word
  1001.            "F"                      ->  vi-char-search
  1002.            "I"                      ->  vi-insert-beg
  1003.            "N"                      ->  vi-search-again
  1004.            "P"                      ->  vi-put
  1005.            "R"                      ->  vi-replace
  1006.            "S"                      ->  vi-subst
  1007.            "T"                      ->  vi-char-search
  1008.            "U"                      ->  revert-line
  1009.            "W"                      ->  vi-next-word
  1010.            "X"                      ->  backward-delete-char
  1011.            "Y"                      ->  vi-yank-to
  1012.            "\"                      ->  vi-complete
  1013.            "^"                      ->  vi-first-print
  1014.            "_"                      ->  vi-yank-arg
  1015.            "a"                      ->  vi-append-mode
  1016.            "b"                      ->  vi-prev-word
  1017.            "c"                      ->  vi-change-to
  1018.            "d"                      ->  vi-delete-to
  1019.            "e"                      ->  vi-end-word
  1020.            "f"                      ->  vi-char-search
  1021.            "h"                      ->  backward-char
  1022.            "i"                      ->  vi-insertion-mode
  1023.            "j"                      ->  next-history
  1024.            "k"                      ->  prev-history
  1025.            "l"                      ->  forward-char
  1026.            "n"                      ->  vi-search-again
  1027.            "r"                      ->  vi-change-char
  1028.            "s"                      ->  vi-subst
  1029.            "t"                      ->  vi-char-search
  1030.            "u"                      ->  undo
  1031.            "w"                      ->  vi-next-word
  1032.            "x"                      ->  vi-delete
  1033.            "y"                      ->  vi-yank-to
  1034.            "|"                      ->  vi-column
  1035.            "~"                      ->  vi-change-case
  1036.  
  1037. SEE ALSO
  1038.      _T_h_e _G_n_u _R_e_a_d_l_i_n_e _L_i_b_r_a_r_y, Brian Fox and Chet Ramey
  1039.      _T_h_e _G_n_u _H_i_s_t_o_r_y _L_i_b_r_a_r_y, Brian Fox and Chet Ramey
  1040.      _b_a_s_h(1)
  1041.  
  1042. FILES
  1043.      ~/._i_n_p_u_t_r_c
  1044.           Individual readline initialization file
  1045.  
  1046. AUTHORS
  1047.           Brian Fox, Free Software Foundation (primary author)
  1048.           bfox@ai.MIT.Edu
  1049.  
  1050.  
  1051.  
  1052.  
  1053. GNU                 Last change: 1994 July 26                  16
  1054.  
  1055.  
  1056.  
  1057.  
  1058.  
  1059.  
  1060. READLINE(3)            C LIBRARY FUNCTIONS            READLINE(3)
  1061.  
  1062.  
  1063.  
  1064.           Chet Ramey, Case Western Reserve University
  1065.           chet@ins.CWRU.Edu
  1066.  
  1067. BUG REPORTS
  1068.      If you find a bug in readline, you should  report  it.   But
  1069.      first,  you  should  make  sure that it really is a bug, and
  1070.      that it appears  in  the  latest  version  of  the  readline
  1071.      library that you have.
  1072.  
  1073.      Once you have determined that a bug actually exists, mail  a
  1074.      bug report to _b_a_s_h-_m_a_i_n_t_a_i_n_e_r_s@_p_r_e_p._a_i._M_I_T._E_d_u.  If you have
  1075.      a fix, you are welcome to mail that  as  well!   Suggestions
  1076.      and  `philosophical'  bug  reports  may  be  mailed  to _b_u_g-
  1077.      _b_a_s_h@_p_r_e_p._a_i._M_I_T._E_d_u  or  posted  to  the  Usenet  newsgroup
  1078.      gnu.bash.bug.
  1079.  
  1080.      Comments and bug reports concerning this manual page  should
  1081.      be directed to _c_h_e_t@_i_n_s._C_W_R_U._E_d_u.
  1082.  
  1083. BUGS
  1084.      It's too big and too slow.
  1085.  
  1086.  
  1087.  
  1088.  
  1089.  
  1090.  
  1091.  
  1092.  
  1093.  
  1094.  
  1095.  
  1096.  
  1097.  
  1098.  
  1099.  
  1100.  
  1101.  
  1102.  
  1103.  
  1104.  
  1105.  
  1106.  
  1107.  
  1108.  
  1109.  
  1110.  
  1111.  
  1112.  
  1113.  
  1114.  
  1115.  
  1116.  
  1117.  
  1118.  
  1119. GNU                 Last change: 1994 July 26                  17
  1120.  
  1121.  
  1122.  
  1123.